﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace TowerDefenseXNA
{
    class Fase_1
    {
        Torre torre;
        Torre torre2;
        Animations hit;

       

        bool tocandoMusica;
        Song musica;
        SoundEffect efeitoSonoro;
        GameWindow Window;

        public Fase_1(ContentManager Content, GameWindow Window)
        {
            this.Window = Window;

            efeitoSonoro = Content.Load<SoundEffect>("WindowsError");

            torre = new Torre(Content.Load<Texture2D>("spriteset"), Window, efeitoSonoro);
            torre2 = new Torre(Content.Load<Texture2D>("spriteset"), Window, efeitoSonoro);

            hit = new Animations(Content.Load<Texture2D>("ae"), Window, efeitoSonoro);
            hit.visivel = false;

            torre.jogador = 1;

            torre2.Posicao = new Vector2(150, 150);
            torre2.jogador = 2;

            torre.hit = hit;
            torre2.hit = hit;

            

            musica = Content.Load<Song>("Kalimba");

            //MediaPlayer.Play(musica);
            MediaPlayer.Pause();
        }

        public void Update(GameTime gameTime, KeyboardState teclado_atual, KeyboardState teclado_anterior, MouseState mouse_atual, MouseState mouse_anterior)
        {

            

            torre.Update(gameTime, teclado_atual, teclado_anterior, mouse_atual, mouse_anterior);
            hit.Update(gameTime, teclado_atual, teclado_anterior, mouse_atual, mouse_anterior, torre);
            torre2.Update(gameTime, teclado_atual, teclado_anterior, mouse_atual, mouse_anterior);

          /*  if (torre2.Bateu(torre))
            {
                torre2.visivel = false;
            } */

            //if(joystick_atual.Buttons.A), B, X, Y, Left/Right Stick, Left/Right Shoulder, Start, 
            //if(joystick_atual.DPad.Down, Right, Left, Up
            /*if (joystick_atual.ThumbSticks.Right.X == 1)
            {
                torre.Posicao = Vector2.Zero;
            }*/

            if (teclado_atual.IsKeyDown(Keys.P)
    && teclado_anterior.IsKeyUp(Keys.P))
            {
                if (!tocandoMusica)
                {
                    MediaPlayer.Resume();
                    tocandoMusica = true;
                }
                else
                {
                    MediaPlayer.Pause();
                    tocandoMusica = false;
                }

            }

            if (teclado_atual.IsKeyDown(Keys.S))
            {
                MediaPlayer.Stop();
                tocandoMusica = false;
            }
            if (tocandoMusica)
            {
                if ((teclado_atual.IsKeyDown(Keys.PageUp)) && (teclado_anterior.IsKeyUp(Keys.PageUp)))
                {
                    MediaPlayer.Volume += 0.1f;
                }
                if ((teclado_atual.IsKeyDown(Keys.PageDown)) && (teclado_anterior.IsKeyUp(Keys.PageDown)))
                {
                    MediaPlayer.Volume -= 0.1f;
                }
                if ((teclado_atual.IsKeyDown(Keys.M)) && (teclado_anterior.IsKeyUp(Keys.M)))
                {
                    MediaPlayer.IsMuted = !MediaPlayer.IsMuted;
                }
            }
        }

        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            torre.Draw(gameTime, spriteBatch);
            hit.Draw(gameTime, spriteBatch);
            torre2.Draw(gameTime, spriteBatch);
        }
    }
}
